#include "shared_memory.hpp"

int main() 
{
    shm.CreateShm(); // 创建共享内存
    shm.AttachShm(); // 映射共享内存
    char *p = (char*)shm.GetShmPtr(); // 获取共享内存指针
    while(true){
        sleep(2);
        if(strlen(p)==26)
            break;
        std::cout<<p<<std::endl;
    }
    shm.DetachShm(); // 解除映射
    shm.RemoveShm(); // 删除共享内存
    return 0;
}
// int main() 
// {    
//     key_t key = ::ftok(path.c_str(), project_id);//获取共享内存的key
//     if(key == -1){
//         std::cerr << "ftok error" << std::endl;
//         return -1;
//     }
//     int shm_id = ::shmget(key, size, 0600|IPC_CREAT|IPC_EXCL);//创建共享内存(共享内存也有权限，以读写创建)
//     if(shm_id == -1){
//         std::cerr << "shmget error" << std::endl;
//         return -1;
//     }
//     void* shm_ptr = ::shmat(shm_id, nullptr, 0);//映射共享内存
//     if(shm_ptr == (void*)-1){
//         std::cerr << "shmat error" << std::endl;
//         return -1;
//     }
//     //通信

//     ::shmdt(shm_ptr);//解除映射
//     std::cout << "shm_id:" << shm_id << std::endl;
//     ::shmctl(shm_id, IPC_RMID, nullptr);//删除共享内存
//     return 0;
// }   